1. Technical Field
The present invention relates to data storage and management generally and more particularly to a method and system for update tracking.
2. Description of the Related Art
Information drives business. Companies today rely to an unprecedented extent on online, frequently accessed, constantly changing data to run their businesses. Unplanned events that inhibit the availability of this data can seriously damage business operations. Additionally, any permanent data loss, from natural disaster or any other source, will likely have serious negative consequences for the continued viability of a business. Therefore, when disaster strikes, companies must be prepared to eliminate or minimize data loss, and recover quickly with useable data.
Several techniques utilized to minimize data loss and improve the availability of data require write operations or “updates” to a data volume be tracked, logged, or journaled. For example, such update tracking is commonly used in data mirroring systems to resynchronize a snapshot data volume which has been created by detaching a mirror data volume from a corresponding primary data volume. In such a scenario, data specifying each update to a primary data volume and/or a snapshot data volume is stored following mirror data volume detachment (commonly referred to as “third-mirror breakoff” or “mirror-breakoff”). Consequently, only those regions which have been modified following mirror breakoff need be synchronized, thus conserving valuable network and data processing system resources. Similarly, such an update tracking is also used in data mirroring system to resynchronize a mirror copy when it is brought online following a detach process due to an I/O error. In another embodiment, the change tracking is used to resynchronize a secondary volume or “replica”) at a disaster recovery site when an associated replication process is restarted following a network outage or failure of the secondary disaster recovery site.
Another technique commonly used to improve the accessibility of data and reduce the probability of data loss is storage virtualization. Storage virtualization is the pooling of physical storage from multiple network storage devices into what appears from a user or user application perspective to be a single storage device. Storage virtualization is often used as part of a storage area network (SAN). A virtual storage device appears as one storage device, regardless of the types of storage devices (e.g., hard disk drives, tape drives, or the like) pooled to create the virtualized storage device. Storage virtualization may be performed in a host data processing system, a SAN fabric, or in storage devices directly. In some conventional systems (e.g., where virtualization is provided in a SAN fabric), virtualization operations are partitioned between specialized hardware (e.g., an application specific integrated circuit or “ASIC” or a proprietary architecture processor, or the like) responsible for the servicing of input/output requests (e.g., the performance of updates) and associated translation between virtual and physical addresses and generalized hardware in combination with software (e.g., a general purpose processor) responsible for establishing the address translation mappings and performing more complex operations.
Tracking updates to a data volume within such a sectioned storage virtualization system requires a transition between the operation of the aforementioned specialized hardware and generalized hardware/software combination (e.g., to perform additional processing through a “fault” mechanism which causes an interrupt and context switch) and consequently disruption of the ordinary processing of updates. As the processing of updates may or may not require a fault or other disruption, the performance of update tracking in a system where virtualization is provided in a SAN fabric may add substantial latency to the performance of write operations.